<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
                //输入一个整数，如果是1-10，转成大写，否则提示输入错误
              
                
                // str = '一二三四五六七八九十';
                // var a= parseInt (prompt('请输入一个整数'));
                //方法一
                // if (a>0&&a<=10) {
                //     console.log(str[a-1]);
                // }else{

                //     console.log('输入错误');
                // }
                //方法二
                // console.log((a>0&&a<=10)?str[a-1]:'输入错误');



                //题目一
                // const arr = [3,2,1,4,5]
                // let temp = arr[2]
                // arr[2] = arr[0]
                // arr[0] = temp
                // 将数组中的  元素1  与  元素3 调换位置

                // const arr = [3,2,1,4,5];
                // for (let i = 0; i < arr.length-1; i++) {

                //     for (let j = 0; j < arr.length-1-i; j++) {
                //         if (arr[j]>arr[j+1]) {
                //         let temp = arr[2]
                //         arr[2] = arr[0]
                //         arr[0] = temp
                //     }
                        
                //     }
                 
                    
                // }
                // console.log(arr);

                //题目二
                //使用冒泡排序（从大到小）：  [90,65,78,66,48,39,92,73]  使用数组解构的方法交换变量
                // const arr=[90,65,78,66,48,39,92,73];
                // for (let i = 0; i < arr.length-1; i++) {
                //     for (let j = 0; j < arr.length-1-i; j++) {
                //         if (arr[j]>arr[j+1]) {
                //             [arr[j],arr[j+1]]=[arr[j+1],arr[j]];
                //         }
                //     }
                // }
                // console.log(arr);

                //题目三
                // var str2 =
                // 'I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.'
                //将上述字符串去除标点空格后统计有多少个单词
                // var text ='I love teaching and empowering people. I teach HTML, CSS, JS, React, Python.';
                // console.log(text.trim())
                //统计空格
        // var knum = 0; //计数
        // var kong = str2.match(/ /g) //筛选
        // for (i in kong) {
        //     knum++
        // }
        // console.log("空格一共出现" + knum + "次")//空格一共出现11次
        // var num2 = 0;
        // // var numbe = str2.match(/\d+/g)
        // var numbe2 = str2.match(/\d{1}/g) //统计一位数
        // for (i in numbe2) {
        //     num2++
        // }
        // console.log("数字一共出现" + num2 + "次")//数字一共出现15次

        // //统计字母
        // var num3 = 0
        // var zimu2 = str2.match(/[a-zA-Z]/g)
        // for (i in zimu2) {
        //     num3++
        // }
        // console.log("字母一共出现" + num3 + "次")//字母一共出现23次

        // // 统计其他字符
        // var num4 = 0;
        // var qita = str2.match(/[^0-9a-zA-Z ]/g)
        // for (i in qita) {
        //     num4++
        // }
        // console.log("其他字母出现" + num4 + "次" + "分别为" + qita)//其他字母出现4次分别为@,@,%,#




                //题目四
                
                // const arr = [87,85,74,70,65,59,43]
              
                
               
               
                const arr = [87,85,74,70,65,59,43];
                //  // 1.移除第一个元素87，并在开头添加 元素86
                //  arr.shift();
                //  arr.unshift(86);
                //  console.log('1.移除第一个元素87，并在开头添加 元素86',arr);
                // // 2.移除最后一个元素43， 并在末尾添加1
                // arr.pop();
                // arr.push(1);
                // console.log('移除最后一个元素43， 并在末尾添加1',arr);
                // // 3.在 70 65 之间插入 元素 68
                // arr.splice(4,0,68);
                // console.log('3.在 70 65 之间插入 元素 68',arr);
                // // 4.删除元素65
                // Array.prototype.remove = function(val) { 
                // var index = this.indexOf(val); 
                // if (index > -1) { 
                // this.splice(index, 1); 
                // } 
                // }       
                // arr.remove(65);
                // console.log('4.删除元素65',arr);
                 // 5.使用map返回一个新的数组new_arr，要求新数组new_arr比原来数组大2
//                  数组的map用法，

// 语法及定义
// map() 方法返回一个新数组，数组中的元素为原始数组元素调用函数处理后的值。

// 　　　map() 方法按照原始数组元素顺序依次处理元素

// 　　　我的理解就是map首先会创建一个新的数组，其中新数组的每一个元素就是原数组中每一个元素经过咱们设置的给定函数变化后的结果。也就是说对原始数组中的每一项运行给定的函数，然后按原数组的顺序组装成新的数组，该方法也不会改变原始的数组，还产生一个新数组。

// 　　    map()接收两个参数：
// 　　　　　第一个参数必填，为一个函数，就是上面所说的给定的函数（每一项执行的函数，必写），这个给定的函数又有三个参数，第一个为当前元素的值（必写），第二个参数是当前值的下标索引，第三个为当前元素属于的数组对象（目前觉得没啥用）。

// 　　　　   第二个参数非必填，thisValue，对象作为该执行回调时使用，传递给函数，用作 "this" 的值。如果省略了 thisValue，或者传入 null、undefined，那么回调函数的 this 为全局对象。（目前还不会用） https://www.shuzhiduo.com/A/A7zgQKgV54/
        function add2(x,y,z){
        console.log(x+"=="+y+'=='+z);
        return x + 2
        }
        var new_arr=arr.map(add2);
        console.log('5.使用map返回一个新的数组new_arr',new_arr);

         // 6.筛选数组new_arr返回new_arr1,要求new_arr1: 能被2整除

         var new_arr1=[];
         for (let i = 0; i < new_arr.length; i++) {
            if (new_arr[i]%2==0) {
              new_arr1[new_arr1.length]=new_arr[i];
            }
            
         }
         console.log(new_arr1);
    </script>
</body>
</html>